package com.ruicar.afs.cloud.risk.tortoise.dto.notice.data;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumDeserializer;
import com.ruicar.afs.cloud.common.core.enums.AfsEnumSerializer;
import com.ruicar.afs.cloud.risk.api.enums.tortoise.GwtTortoiseDecisionResult;
import com.ruicar.afs.cloud.risk.api.enums.tortoise.GwtTortoiseExceptPledge;
import com.ruicar.afs.cloud.risk.api.enums.tortoise.GwtTortoiseFraudResult;
import lombok.Data;

/**
 * Description 正式进单
 * Author Peng Jinbo
 * Date 2020/07/21 16:32
 */
@Data
public class GwtTortoiseApplyNotice {

    /**
     * Decision engine result
     * 自动审批结果，决策引擎返回字段
     * 1，建议核准；2，建议附条件核准；3建议拒绝；4，建议人工审核；5，建议免电核；6，建议简易电核
     */
    @JSONField(name = "decisionEngineResult",serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    @JsonProperty("decisionEngineResult")
    @JsonSerialize(using = AfsEnumSerializer.class)
    @JsonDeserialize(using = AfsEnumDeserializer.class)
    private GwtTortoiseDecisionResult decisionEngineResult;

    /**
     * Decision engine pledge flag
     * 是否免抵押，决策引擎返回字段，1，是；2，否
     */
    @JSONField(name = "decisionEnginepledgeFlag",serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    @JsonProperty("decisionEnginepledgeFlag")
    @JsonSerialize(using = AfsEnumSerializer.class)
    @JsonDeserialize(using = AfsEnumDeserializer.class)
    private GwtTortoiseExceptPledge decisionEnginePledgeFlag;

    /**
     * Decision engine score
     * 评分，决策引擎返回
     */
    @JSONField(name = "decisionEngineScore")
    @JsonProperty("decisionEngineScore")
    private String decisionEngineScore;

    /**
     * Decision engine score display
     * 评分展示，决策引擎返回字段，用于分单，目前只保留E级
     */
    @JSONField(name = "decisionEngineScoreDisplay")
    @JsonProperty("decisionEngineScoreDisplay")
    private String decisionEngineScoreDisplay;

    /**
     * Anti fraud result
     * 反欺诈结果，s：疑似 c：清白 h：高风险，反欺诈系统返回字段
     */
    @JSONField(name = "antiFraudResult",serializeUsing = AfsEnumSerializer.class, deserializeUsing = AfsEnumDeserializer.class)
    @JsonProperty("antiFraudResult")
    @JsonSerialize(using = AfsEnumSerializer.class)
    @JsonDeserialize(using = AfsEnumDeserializer.class)
    private GwtTortoiseFraudResult antiFraudResult;

    /**
     * Anti fraud score
     * 反欺诈结果评分
     */
    @JSONField(name = "antiFraudScore")
    @JsonProperty("antiFraudScore")
    private String antiFraudScore;

    /**
     * Credit score
     * 征信解读分（新增）
     */
    @JSONField(name = "creditScore")
    @JsonProperty("creditScore")
    private GwtTortoiseCreditScoreData creditScore;

    /**
     * Tag data
     * 玄武标签（新增，需要双方沟通好映射）
     */
    @JSONField(name = "tagData")
    @JsonProperty("tagData")
    private String tagData;


    /**
     * 玄武返回调用步骤，用于判断是否自动拒绝
     */
    @JSONField(name = "callStep")
    @JsonProperty("callStep")
    private String callStep;

}
